# @Time : 2020/7/17 16:33
# @Author : Fioman 
# @Phone : 13149920693
"""
gray灰度图像 通常指8位灰度图像,其具有256个灰度级.就是从0到255取值.
当图像由RGB转换为灰度图像的时候,其处理方式如下:
gray = 0.299*R + 0.587*G + 0.114*B
这是标准的转换方式,也是opencv中使用的转换方式.当然,也可以采用简化形式完成转换.
Gray = (R + G + B) / 3
当图像由Gray色彩空间转换为RGB色彩空间的时候,最终所有的通道的值都将是相同的.其处理方式如下:
R = Gray  G = Gray  B = Gray

RGB是从硬件的角度提出来的颜色模型,在与人眼匹配的过程中可能存在一定的差异,HSV色彩空间是一种面向视觉感知的颜色模型.
色调(Hue,也称为色相), 饱和度(Saturation),亮度(Value).
色调指光的颜色,饱和度是指色彩的深浅程度,亮度值的是人眼感受到的光的明暗程度.
"""

import cv2 as cv
import numpy as np

img = np.random.randint(0, 255, size=(2, 4, 3), dtype=np.uint8)
rst = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
print("img=\n", img)
print("rst=\n", rst)

print("像素点(1,0)直接计算得到的结果 = {}".format(img[1, 0, 0] * 0.114 +
                                      img[1, 0, 1] * 0.587 + img[1, 0, 2] * 0.299))
print("像素点(1,0)使用公式cv.cvtColor()转换值 = {}".format(rst[1, 0]))

# 将灰度图像,转换为BGR图像
img = np.random.randint(0, 255, size=[2, 4], dtype=np.uint8)
rst = cv.cvtColor(img, cv.COLOR_GRAY2BGR)
print("img = \n", img)
print("rst = \n", rst)

